package com.elsa.common.selector;

import org.springframework.context.annotation.ImportSelector;
import org.springframework.core.type.AnnotationMetadata;

import com.elsa.common.configure.ElsaAuthExceptionConfigure;
import com.elsa.common.configure.ElsaOAuth2FeignConfigure;
import com.elsa.common.configure.ElsaServerProtectConfigure;
/**
 * @projectName：elsa-common
 * @typeName：ElsaCloudApplicationSelector
 * @author：cos
 * @date：2021年5月13日
 * @version
 * @desc：注册多个配置类
 * 	ElsaServerProtectConfigure，开启微服务防护，避免客户端绕过网关直接请求微服务
 *	ElsaOAuth2FeignConfigure，开启带令牌的Feign请求，避免微服务内部调用出现401异常
 *	ElsaAuthExceptionConfigure，认证类型异常翻译
 */
public class ElsaCloudApplicationSelector implements ImportSelector {

    @Override
    public String[] selectImports(AnnotationMetadata annotationMetadata) {
        return new String[]{
                ElsaAuthExceptionConfigure.class.getName(),
                ElsaOAuth2FeignConfigure.class.getName(),
                ElsaServerProtectConfigure.class.getName()
        };
    }
}
